package com.tx.component.task.service;

import java.util.List;
import java.util.Map;

import com.tx.component.task.model.TaskDetail;
import com.tx.core.paged.model.PagedList;

/**
 * 任务详情业务层<br/>
 * <功能详细描述>
 * 
 * @author  PengQingyang
 * @version  [版本号, 2022年5月9日]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public interface TaskDetailService {
    
    /**
     * 根据id查询TaskDetail实例
     * 1、当id为empty时抛出异常
     *
     * @param id
     * @return TaskDetail [返回类型说明]
     * @exception throws
     * @see [类、类#方法、类#成员]
     */
    TaskDetail findById(String id);
    
    /**
     * 查询TaskDetail实例列表
     * <功能详细描述>
     * @param valid
     * @param params      
     * @return [参数说明]
     * 
     * @return List<TaskDetail> [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    List<TaskDetail> queryList(Map<String, Object> params);
    
    /**
     * 分页查询TaskDetail实例列表
     * <功能详细描述>
     * @param valid
     * @param params    
     * @param pageIndex 当前页index从1开始计算
     * @param pageSize 每页显示行数
     * 
     * <功能详细描述>
     * @return [参数说明]
     * 
     * @return List<TaskDetail> [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    PagedList<TaskDetail> queryPagedList(Map<String, Object> params,
            int pageIndex, int pageSize);
    
    /**
     * 查询TaskDetail实例数量<br/>
     * <功能详细描述>
     * @param valid
     * @param params      
     * @return [参数说明]
     * 
     * @return List<TaskDetail> [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    int count(Map<String, Object> params);
    
    /**
     * 根据parentId查询TaskDetail子级实例列表<br/>
     * <功能详细描述>
     * @param parentId
     * @param valid
     * @param params
     * @return [参数说明]
     * 
     * @return List<T> [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    List<TaskDetail> queryChildrenByParentId(String parentId,
            Map<String, Object> params);
    
    /**
     * 根据parentId查询TaskDetail子、孙级实例列表<br/>
     * <功能详细描述>
     * @param parentId
     * @param valid
     * @param params
     * @return [参数说明]
     * 
     * @return PagedList<T> [返回类型说明]
     * @exception throws [异常类型] [异常说明]
     * @see [类、类#方法、类#成员]
     */
    List<TaskDetail> queryDescendantsByParentId(String parentId,
            Map<String, Object> params);
    
}